// DataLibrary InterfacePlugin Skin - Help

// 識別子：DL_HLP
// 内容  ：ヘルプ用スキン。

//----------------------------------------------------------------------------//
// Plugin
//----------------------------------------------------------------------------//

//-- プラグインの読み込み処理 --//
DL_LoadSkin_Help:
	Call DL_LoadSkin "Common"  // スキン用の共有サブルーチンを読み込む
Return


//-- プラグインの終了処理 --//
//DL_UnLoadSkin_Help:
//Return


//----------------------------------------------------------------------------//
// Skin-Help
//----------------------------------------------------------------------------//

//-- SkinAction action_id select_id : アクションに合わせてインターフェースを再描画する --//
DL_HLP_SkinAction:
	Switch Args(1)
	Case "StartInterface"
		// スクロールの準備をする
		Call DL_SetScrollData "Help" "PageB" 16 Count(DL_HLP_KeyHelp)
		
		Call DL_CMN_ChangeFontFace "Help"  // 個別フォント指定を適用する
		Call DL_HLP_DisplayInterface       // インターフェースを表示する
	Case "EndInterface"
		// スクロール情報を削除する
		Call DL_SetScrollData "Help" "Delete"
		
		Call DL_CMN_ClearFontFace "Help"   // 個別フォント指定を解除する
	Case "SelectScroll"
		Call DL_CMN_PageControllAciton Args(2) "Select"
		Refresh
	Case "RedrawScroll"
		Call DL_HLP_DisplayInterface
		Refresh
	Case "CancelScroll"
		ClearPicture
		Refresh
	Case "SelectConfig"
		Call DL_CMN_ImageButtonAction "Config" "Select"
		Refresh
	Case "SelectReturn"
		Call DL_CMN_ImageButtonAction "Return" "Select"
		Refresh
	EndSw
Return


//-- DisplayInterface : インターフェースを表示する --//
DL_HLP_DisplayInterface:
	Call DL_CMN_ClearDisplay      // 画面を初期化する
	Call DL_CMN_ClearShortcutKey  // ショートカットキーを初期化する
	UnSet DL_CMN_ActionData       // アクションデータを初期化する
	
	// 文字・線の描画方法を保持にする
	Call DL_CMN_SetDrawOption "保持"
	
	// 背景とタイトルを表示する
	Call DL_CMN_Background
	Call DL_CMN_Title DL_GetOptionValue("HelpTitle", "HELP")
	
	// ヘルプデータを表示する
	Call DL_CMN_Frame 40 64 400 348
	Call DL_CMN_DrawLine 40 64 400
	
	Font 9pt DL_FontFace["Text"] Regular
	Call DL_CMN_DrawString 50 72 "現在のショートカットキーの動作" "Emphasis"
	Local py = 92
	Local i
	For i = DL_ScrollFirst("Help") To DL_ScrollLast("Help")
		Call DL_HLP_KeyHelpList 40 py DL_HLP_KeyHelp[i]
		Incr py 20
	Next
	
	// スクロールボタンを表示する
	If DL_GetScrollData("Help", "IsPrev") Or DL_GetScrollData("Help", "IsPrev") Then
		Call DL_CMN_PageControll 166 429 "Help"
	EndIf
	
	// 戻るボタンを表示する
	Call DL_CMN_ImageButton "Return" DL_Image["Return"] 424 8 32 32 "戻る" 1
	
	// 文字・線の描画方法を通常にする
	Call DL_CMN_SetDrawOption "通常"
	
	// ショートカットキーを設定する
	Call DL_CMN_SetShortcutKey 2 "Cancel"    // RightClick
	Call DL_CMN_SetShortcutKey 8 "Cancel"    // BS
	Call DL_CMN_SetShortcutKey 27 "Quit"     // ESC
	Call DL_CMN_SetShortcutKey 112 "Index"   // F1
	If DL_GetScrollData("Help", "IsPrev") Then
		Call DL_CMN_SetShortcutKey 37 "Scroll Help -1"  // ←
	EndIf
	If DL_GetScrollData("Help", "IsNext") Then
		Call DL_CMN_SetShortcutKey 39 "Scroll Help +1"  // →
	EndIf
Return


//----------------------------------------------------------------------------//
// Interface Subroutine
//----------------------------------------------------------------------------//

//-- KeyHelpList x y help_data : ヘルプデータを表示する --//
DL_HLP_KeyHelpList:
	Local key_name = LIndex(Args(3), 1)
	Local key_text = LIndex(Args(3), 2)
	Local width = DL_HLP_KeyNameWidth + 40
	
	Font 9pt DL_FontFace["Text"] Regular
	Call DL_CMN_DrawString (Args(1) + DL_SCX(key_name, width)) Args(2) key_name
	Call DL_CMN_DrawString (Args(1) + width) Args(2) ("/  " & key_text)
Return


